åçãªJavaScriptãã¬ãŒã ã¯ãŒã¯ãšã³ã·ã¹ãã ã«ãããããã±ãŒãžè匱æ§ç®¡çãæ·±ãæ¢æ±ããéçºè ãçµç¹åãã«ã°ããŒãã«ãªæŽå¯ãšå®è·µçãªæŠç¥ãæäŸããŸãã
JavaScriptãã¬ãŒã ã¯ãŒã¯ãšã³ã·ã¹ãã ã®èªæµ·è¡ïŒããã±ãŒãžè匱æ§ç®¡çã®è©³çŽ°è§£èª¬
çŸä»£ã®Webéçºã®ç¶æ³ã¯ãJavaScriptãã¬ãŒã ã¯ãŒã¯ãšã³ã·ã¹ãã ãšå¯æ¥ã«çµã³ã€ããŠããŸããReactãAngularãVue.jsãSvelteãªã©ã®ãã¬ãŒã ã¯ãŒã¯ã¯ãã€ã³ã¿ã©ã¯ãã£ãã§åçãªã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯æ¹æ³ã«é©åœããããããŸããããããããã®æ¥éãªé©æ°ã«ã¯ããããã®ãããžã§ã¯ãã®åºç€ã圢æããèšå€§ãªæ°ã®ãµãŒãããŒãã£ããã±ãŒãžã®ã»ãã¥ãªãã£ã«é¢ããåºæã®èª²é¡ã䌎ããŸããããã±ãŒãžã®è匱æ§ç®¡çã¯ãã¯ãåŸåãã«ã§ãããã®ã§ã¯ãªããäžçäžã®ãŠãŒã¶ãŒã«åããŠå®å šã§å ç¢ããã€ä¿¡é Œæ§ã®é«ããœãããŠã§ã¢ãç¶æããããã®éèŠãªèŠçŽ ãšãªã£ãŠããŸãã
JavaScriptããã±ãŒãžãšã³ã·ã¹ãã ã®é åãšå±éºæ§
JavaScriptã®ããã±ãŒãžãããŒãžã£ãŒãäž»ã«npmïŒNode Package ManagerïŒãšyarnã¯ãåäŸã®ãªãã¬ãã«ã®ã³ãŒãå ±æãšåå©çšãä¿é²ããŠããŸãããéçºè ã¯äœçŸäžãã®ãªãŒãã³ãœãŒã¹ããã±ãŒãžã掻çšããŠéçºãå éãããäžè¬çãªæ©èœã®ããã«è»èŒªã®åçºæãããå¿ èŠããããŸããããã®ååçãªç²Ÿç¥ã¯JavaScriptã³ãã¥ããã£ã®ç€ã§ãããäžçäžã§è¿ éãªã€ãã¬ãŒã·ã§ã³ãšã€ãããŒã·ã§ã³ãå¯èœã«ããŠããŸãã
ãããããã®çžäºæ¥ç¶æ§ã¯åºå€§ãªæ»æå¯Ÿè±¡é åãçã¿åºããŸããåºã䜿çšãããŠããåäžã®ããã±ãŒãžã®è匱æ§ã¯ãäžçäžã®äœåãäœçŸäžãã®ã¢ããªã±ãŒã·ã§ã³ã«åœ±é¿ãäžããå¯èœæ§ããããåºç¯å²ã«ãããçµæãããããå¯èœæ§ããããŸããããœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ããšããæŠå¿µã¯ãŸããŸãéèŠã«ãªã£ãŠãããæªæã®ããæ»æè ããäžèŠç¡å®³ã«èŠããããã±ãŒãžã«è匱æ§ãæ³šå ¥ããããšã§ããã®ãã§ãŒã³ãå±éºã«ãããæ¹æ³ãæµ®ã圫ãã«ããŠããŸãã
ããã±ãŒãžã®è匱æ§ãçè§£ãã
ããã±ãŒãžã®è匱æ§ãšã¯ãæ»æè ãã·ã¹ãã ã®æ©å¯æ§ãå®å šæ§ããŸãã¯å¯çšæ§ã䟵害ããããã«æªçšã§ãããœãããŠã§ã¢ã³ã³ããŒãã³ãã®æ¬ é¥ã匱ç¹ãæããŸããJavaScriptããã±ãŒãžã®æèã§ã¯ããããã®è匱æ§ã¯ããŸããŸãªåœ¢ã§çŸããå¯èœæ§ããããŸãïŒ
- ã³ãŒãã€ã³ãžã§ã¯ã·ã§ã³ã®æ¬ é¥ïŒ æ»æè ãã¢ããªã±ãŒã·ã§ã³ã®ç°å¢å ã§ä»»æã®ã³ãŒããå®è¡ã§ããããã«ããŸãã
- ã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒXSSïŒïŒ æ»æè ãä»ã®ãŠãŒã¶ãŒãé²èЧããWebããŒãžã«æªæã®ããã¹ã¯ãªãããæ³šå ¥ã§ããããã«ããŸãã
- ãµãŒãã¹æåŠïŒDoSïŒïŒ 匱ç¹ãæªçšããŠã¢ããªã±ãŒã·ã§ã³ããµãŒããŒã«éè² è·ããããæ£åœãªãŠãŒã¶ãŒãå©çšã§ããªãããŸãã
- æ å ±æŒæŽ©ïŒ ãããªãæ»æã«äœ¿çšãããå¯èœæ§ã®ããæ©å¯ããŒã¿ãèšå®è©³çްãæããã«ããŸãã
- ããã±ãŒãžå ã®æªæã®ããã³ãŒãïŒ çšã§ã¯ãããŸããé倧ãªã±ãŒã¹ãšããŠãããã±ãŒãžèªäœãæå³çã«æªæãæã€ããã«èšèšããããã°ãã°æ£åœãªããŒã«ã«ãªãããŸããŠããããšããããŸãã
JavaScriptéçºã®ã°ããŒãã«ãªæ§è³ªã¯ãnpmãyarnã«ãã£ãŠç®¡çãããããã±ãŒãžã§çºèŠãããè匱æ§ããæ±åã¢ãžã¢ã®ã¹ã¿ãŒãã¢ããããåç±³ããšãŒãããã®æ¢åäŒæ¥ãŸã§ãããŸããŸãªå°åã®ãããžã§ã¯ãã«åœ±é¿ãäžããå¯èœæ§ãããããšãæå³ããŸãã
广çãªããã±ãŒãžè匱æ§ç®¡çã®æ±
广çãªããã±ãŒãžè匱æ§ç®¡çã¯ããœãããŠã§ã¢éçºã©ã€ããµã€ã¯ã«å šäœãéããŠç¶ç¶çãªæ³šæãå¿ èŠãšããå€é¢çãªã¢ãããŒãã§ããããã¯äžåºŠããã®ä¿®æ£ã§ã¯ãªããç¶ç¶çãªããã»ã¹ã§ãã
1. ããã¢ã¯ãã£ããªäŸåé¢ä¿ã®éžæ
æåã®é²åŸ¡ç·ã¯ããããžã§ã¯ãã«å«ããããã±ãŒãžãæ éã«éžã¶ããšã§ããææ°ã§æ©èœè±å¯ãªããã±ãŒãžã䜿ããããšããèªæã¯åŒ·ãã§ãããæ¬¡ã®ç¹ãèæ ®ããŠãã ããïŒ
- ããã±ãŒãžã®äººæ°ãšã¡ã³ããã³ã¹ïŒ ãŠãŒã¶ãŒããŒã¹ã倧ãããæŽ»çºã«ã¡ã³ããã³ã¹ãããŠããããã±ãŒãžãåªå ããŸãã人æ°ã®ããããã±ãŒãžã¯ãè匱æ§ãçºèŠãããè¿ éã«ããããé©çšãããå¯èœæ§ãé«ãã§ãããããžã§ã¯ãã®ã³ãããå±¥æŽã課é¡ãã©ãã«ãŒããªãªãŒã¹é »åºŠã確èªããŠãã ããã
- äœè ã®è©å€ïŒ ããã±ãŒãžã¡ã³ãããŒã®è©å€ã調æ»ããŸãã圌ãã¯ã»ãã¥ãªãã£æèãé«ãããšã§ç¥ãããŠããŸããïŒ
- äŸåé¢ä¿ã®äŸåé¢ä¿ïŒæšç§»çäŸåé¢ä¿ïŒïŒ ããã±ãŒãžãã€ã³ã¹ããŒã«ãããšããã®ãã¹ãŠã®äŸåé¢ä¿ããããŠããã«ãã®äŸåé¢ä¿ãã€ã³ã¹ããŒã«ãããããšãçè§£ããŠãã ãããããã«ãããæ»æå¯Ÿè±¡é åãå€§å¹ ã«æ¡å€§ããå¯èœæ§ããããŸããäŸåé¢ä¿ããªãŒãèŠèŠåããããŒã«ã¯ãããã§éåžžã«äŸ¡å€ããããŸãã
- ã©ã€ã»ã³ã¹ïŒ å³å¯ã«ã¯ã»ãã¥ãªãã£ã®è匱æ§ã§ã¯ãããŸãããããããžã§ã¯ãå šäœã§ã©ã€ã»ã³ã¹ã®äºææ§ã確ä¿ããããšã¯ãç¹ã«èŠå¶ã®å³ããæ¥çããœãããŠã§ã¢ãã°ããŒãã«ã«é åžããå Žåã«ãããŠãã³ã³ãã©ã€ã¢ã³ã¹äžéèŠã§ãã
äŸïŒ ãã©ãžã«ã§æ°ããeã³ããŒã¹ãã©ãããã©ãŒã ãæ§ç¯ããŠããããŒã ã¯ããããã§æè¿äœæããããã£ãŒãã©ã€ãã©ãªããããããšãåŸè ããããã«èŠèŠçã«é åçãªåºåãæäŸãããšããŠãã確ç«ããæŽ»çºã«ã¡ã³ããã³ã¹ãããŠãããã®ãéžæãããããããŸãããåè ã®ã»ãã¥ãªãã£ãšå®å®æ§ã®å©ç¹ã¯ãããããªçŸçå·®ç°ãäžåããŸãã
2. ç¶ç¶çãªã¹ãã£ã³ãšã¢ãã¿ãªã³ã°
ãããžã§ã¯ããéå§ãããããäŸåé¢ä¿ã«ãããæ¢ç¥ã®è匱æ§ã宿çã«ã¹ãã£ã³ããããšãæãéèŠã§ããããã€ãã®ããŒã«ããµãŒãã¹ããã®ããã»ã¹ãèªååã§ããŸãïŒ
- npm audit / yarn auditïŒ npmãšyarnã®äž¡æ¹ã«ãè匱æ§ããã§ãã¯ããããã®çµã¿èŸŒã¿ã³ãã³ããçšæãããŠããŸããçæ³çã«ã¯CI/CDãã€ãã©ã€ã³ã®äžéšãšããŠã
npm auditãŸãã¯yarn auditã宿çã«å®è¡ããããšãåºæ¬çãªã¹ãããã§ãã - è匱æ§ã¹ãã£ã³ããŒã«ïŒ å°çšã®ã»ãã¥ãªãã£ããŒã«ã¯ãããå
æ¬çãªã¹ãã£ã³æ©èœãæäŸããŸããäŸãšããŠã¯ä»¥äžã®ãããªãã®ããããŸãïŒ
- SnykïŒ SCMïŒãœãŒã¹ã³ãŒã管çïŒãCI/CDãšçµ±åããã³ãŒããäŸåé¢ä¿ãIaCïŒInfrastructure as CodeïŒã®è匱æ§ãèŠã€ããŠä¿®æ£ãã人æ°ã®ãã©ãããã©ãŒã ã§ãã
- DependabotïŒGitHubïŒïŒ è匱ãªäŸåé¢ä¿ãèªåçã«æ€åºããããããæŽæ°ããããã®ãã«ãªã¯ãšã¹ããäœæããŸãã
- OWASP Dependency-CheckïŒ ãããžã§ã¯ãã®äŸåé¢ä¿ãç¹å®ããæ¢ç¥ã®å ¬éãããè匱æ§ããããã©ããããã§ãã¯ãããªãŒãã³ãœãŒã¹ããŒã«ã§ãã
- WhiteSourceïŒçŸMendïŒïŒ ãªãŒãã³ãœãŒã¹ã®ã»ãã¥ãªãã£ãšã©ã€ã»ã³ã¹ã³ã³ãã©ã€ã¢ã³ã¹ã管çããããã®å ç¢ãªããŒã«ã¹ã€ãŒããæäŸããŸãã
- ã»ãã¥ãªãã£ã¢ããã€ã¶ãªãšãã£ãŒãïŒ æ°ãã«çºèŠãããè匱æ§ã«ã€ããŠåžžã«æ å ±ãå ¥æããŠãã ãããnpmãåã ã®ããã±ãŒãžã¡ã³ãããŒãOWASPãªã©ã®ã»ãã¥ãªãã£çµç¹ããã®ã»ãã¥ãªãã£ã¢ããã€ã¶ãªã賌èªããŠãã ããã
äŸïŒ ã€ã³ãããã€ãããªãŒã¹ãã©ãªã¢ã«ã¡ã³ããŒãããè€æ°ã®ã¿ã€ã ãŸãŒã³ã§æŽ»åããéçºããŒã ã¯ãå€éã«å®è¡ãããèªåã¹ãã£ã³ãèšå®ã§ããŸããããã«ãããå€éã«çºèŠãããæ°ããè匱æ§ããã©ã°ä»ããããå Žæã«é¢ä¿ãªãé¢é£ããããŒã ã¡ã³ããŒã«ãã£ãŠè¿ éã«å¯ŸåŠãããããšãä¿èšŒãããŸãã
3. è匱æ§ç®¡çã«ãããCI/CDã®åœ¹å²
è匱æ§ã¹ãã£ã³ãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ããã³ç¶ç¶çãããã€ã¡ã³ãïŒCI/CDïŒãã€ãã©ã€ã³ã«çµ±åããããšã¯ãè匱ãªã³ãŒããæ¬çªç°å¢ã«å°éããªãããã«ããããã®æã广çãªæ¹æ³ãããããŸããããã®èªååã¯ããã€ãã®å©ç¹ããããããŸãïŒ
- æ©æçºèŠïŒ è匱æ§ã¯å¯èœãªéãæ©ãæ®µéã§ç¹å®ãããä¿®æ£ã®ã³ã¹ããšè€éããåæžããŸãã
- 匷å¶ïŒ CI/CDãã€ãã©ã€ã³ã¯ãé倧ãªè匱æ§ãæ€åºãããå Žåã«ãã«ãã倱æãããããã«èšå®ã§ããå®å šã§ãªãã³ãŒãã®ãããã€ãé²ããŸãã
- äžè²«æ§ïŒ 誰ããã€å€æŽãå ãããã«é¢ä¿ãªãããã¹ãŠã®ã³ãŒã倿Žãã¹ãã£ã³ãããããšãä¿èšŒããŸãã
- èªåä¿®æ£ïŒ Dependabotã®ãããªããŒã«ã¯ãè匱ãªããã±ãŒãžãæŽæ°ããããã®ãã«ãªã¯ãšã¹ããèªåçã«äœæãããããé©çšããã»ã¹ãå¹çåããŸãã
äŸïŒ åç±³ãšãšãŒãããã«éçºæ ç¹ãæã€å€åœç±SaaSäŒæ¥ã¯ããã¹ãŠã®ã³ãããã§npm auditãããªã¬ãŒããCIãã€ãã©ã€ã³ãèšå®ãããããããŸãããç£æ»ã§ãé«ããŸãã¯ãã¯ãªãã£ã«ã«ãã®æ·±å»åºŠã®è匱æ§ãå ±åãããå Žåããã«ãã¯å€±æããéçºããŒã ã«éç¥ãéä¿¡ãããŸããããã«ãããå®å
šã§ãªãã³ãŒãããã¹ãããããã€ã®æ®µéã«é²ãã®ãé²ããŸãã
4. ä¿®æ£æŠç¥
è匱æ§ãæ€åºãããå Žåãæç¢ºãªä¿®æ£æŠç¥ãäžå¯æ¬ ã§ãïŒ
- äŸåé¢ä¿ã®æŽæ°ïŒ æãç°¡åãªè§£æ±ºçã¯ãå€ãã®å Žåãè匱ãªããã±ãŒãžãæ°ãããããé©çšæžã¿ã®ããŒãžã§ã³ã«æŽæ°ããããšã§ãã
npm updateãŸãã¯yarn upgradeã䜿çšããŸãã - äŸåé¢ä¿ã®ããŒãžã§ã³åºå®ïŒ å Žåã«ãã£ãŠã¯ãå®å®æ§ã確ä¿ããããã«ç¹å®ã®ããŒãžã§ã³ã®ããã±ãŒãžãåºå®ããå¿ èŠããããããããŸãããããããããã¯ã»ãã¥ãªãã£ããããèªåçã«åãåãã®ã劚ããå¯èœæ§ããããŸãã
- äžæçãªåé¿çïŒ çŽæ¥çãªæŽæ°ãããã«å®è¡äžå¯èœãªå ŽåïŒäŸïŒäºææ§ã®åé¡ã®ããïŒãããæä¹ çãªè§£æ±ºçã«åãçµãéãäžæçãªåé¿çãããããå®è£ ããŸãã
- ããã±ãŒãžã®çœ®ãæãïŒ ããã±ãŒãžããã¯ãã¡ã³ããã³ã¹ãããŠããªãããŸãã¯æç¶çãªè匱æ§ãããæ·±å»ãªã±ãŒã¹ã§ã¯ã代æ¿åã«çœ®ãæããå¿ èŠããããããããŸãããããã¯éèŠãªäœæ¥ã§ãããæ éãªèšç»ãå¿ èŠã§ãã
- ãããé©çšïŒ å ¬åŒã®ããããå©çšã§ããªãã¯ãªãã£ã«ã«ãªãŒããã€è匱æ§ã®å ŽåãããŒã ã¯ã«ã¹ã¿ã ããããéçºããŠé©çšããå¿ èŠããããããããŸãããããã¯ãã€ãªã¹ã¯ã»ãã€ãªã¿ãŒã³ã®æŠç¥ã§ãããæåŸã®ææ®µãšãã¹ãã§ãã
æŽæ°ããéã¯ãæŽæ°ã«ãã£ãŠãªã°ã¬ãã·ã§ã³ãçºçããããæ¢åã®æ©èœãå£ãããããŠããªãããšã確èªããããã«ãåžžã«åŸ¹åºçã«ãã¹ãããŠãã ãããããã¯ã倿§ãªãŠãŒã¶ãŒç°å¢ããšããžã±ãŒã¹ãé²åããå¯èœæ§ã®ããã°ããŒãã«ãªæèã§ç¹ã«éèŠã§ãã
5. ãµãã©ã€ãã§ãŒã³æ»æã®çè§£ãšç·©å
è åšã®å·§åŠãã¯å¢ããŠããŸãããµãã©ã€ãã§ãŒã³æ»æã¯ããœãããŠã§ã¢ã®éçºãŸãã¯é åžããã»ã¹ãå±éºã«ãããããšãç®çãšããŠããŸããããã«ã¯ä»¥äžã®ãããªãã®ãå«ãŸããŸãïŒ
- æªæã®ããããã±ãŒãžã®å ¬éïŒ æ»æè ã¯ã人æ°ã®ããããã±ãŒãžãæš¡å£ããããåœåèŠåãæªçšãããããæªæã®ããããã±ãŒãžãå ¬éããŸãã
- ã¡ã³ãããŒã¢ã«ãŠã³ãã®äŸµå®³ïŒ æ£åœãªããã±ãŒãžã¡ã³ãããŒã®ã¢ã«ãŠã³ãã«ã¢ã¯ã»ã¹ããæªæã®ããã³ãŒããæ³šå ¥ããŸãã
- ã¿ã€ãã¹ã¯ã¯ããã£ã³ã°ïŒ 人æ°ã®ãããã¡ã€ã³åãããã±ãŒãžåã®ããããªã¹ãã«ãã¹ãç»é²ããéçºè ãéšããŠã€ã³ã¹ããŒã«ãããŸãã
ç·©åæŠç¥ã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- 峿 Œãªããã±ãŒãžã€ã³ã¹ããŒã«ããªã·ãŒïŒ ãã¹ãŠã®æ°ããããã±ãŒãžè¿œå ãã¬ãã¥ãŒããæ¿èªããŸãã
- ããã¯ãã¡ã€ã«ã®äœ¿çšïŒ
package-lock.jsonïŒnpmïŒãyarn.lockïŒyarnïŒã®ãããªããŒã«ã¯ããã¹ãŠã®äŸåé¢ä¿ã®æ£ç¢ºãªããŒãžã§ã³ãã€ã³ã¹ããŒã«ãããããšãä¿èšŒãã䟵害ããããœãŒã¹ããã®äºæããªãæŽæ°ãé²ããŸãã - ã³ãŒã眲åãšæ€èšŒïŒ ãšã³ããŠãŒã¶ãŒã¢ããªã±ãŒã·ã§ã³åãã®JavaScriptãšã³ã·ã¹ãã ã§ã¯ããŸãäžè¬çã§ã¯ãããŸããããã€ã³ã¹ããŒã«æã«ããã±ãŒãžã®å®å šæ§ãæ€èšŒããããšã§ããããªãã»ãã¥ãªãã£å±€ã远å ã§ããŸãã
- éçºè ã®æè²ïŒ ãµãã©ã€ãã§ãŒã³æ»æã®ãªã¹ã¯ã«ã€ããŠã®æèãé«ããå®å šãªã³ãŒãã£ã³ã°æ £è¡ãä¿é²ããŸãã
äŸïŒ è
åšã®ç¶æ³ãéåžžã«æèããŠããåã¢ããªã«ã®ãµã€ããŒã»ãã¥ãªãã£äŒæ¥ã¯ãããšãããã±ãŒãžãæ£åœã«èŠããŠãããã¹ãŠã®æ°ããããã±ãŒãžã®ã€ã³ã¹ããŒã«ã«ãã¢ã¬ãã¥ãŒãšã»ãã¥ãªãã£ããŒã ã®æ¿èªãå¿
èŠãšããããªã·ãŒãå®è£
ãããããããŸããããŸããCI/CDãã€ãã©ã€ã³ã§npm ciã®äœ¿çšã匷å¶ããããã¯ãã¡ã€ã«ã«å³å¯ã«åŸãããšã§ããããªãéžè±ãé²ããŸãã
ããã±ãŒãžè匱æ§ç®¡çã«ãããã°ããŒãã«ãªèæ ®äºé
ãœãããŠã§ã¢éçºã®ã°ããŒãã«ãªæ§è³ªã¯ãããã±ãŒãžè匱æ§ç®¡çã«ãããŠç¬èªã®èª²é¡ãšèæ ®äºé ããããããŸãïŒ
- 倿§ãªèŠå¶ç°å¢ïŒ åœãå°åã«ãã£ãŠãããŒã¿ãã©ã€ãã·ãŒãã»ãã¥ãªãã£ã«é¢ããèŠå¶ãç°ãªããŸãïŒäŸïŒãšãŒãããã®GDPRãã«ãªãã©ã«ãã¢ã®CCPAïŒãäŸåé¢ä¿ããããã«æºæ ããŠããããšã確èªããã®ã¯è€éã«ãªãããšããããŸãã
- ã¿ã€ã ãŸãŒã³ã®éãïŒ ç°ãªãã¿ã€ã ãŸãŒã³ã®ããŒã éã§ãããã®å±éãã€ã³ã·ãã³ã察å¿ã調æŽããã«ã¯ãæç¢ºãªã³ãã¥ãã±ãŒã·ã§ã³ãããã³ã«ãšèªååãããã·ã¹ãã ãå¿ èŠã§ãã
- èšèªã®å£ïŒ ã»ãšãã©ã®æè¡åéã§ã¯ãããã§ãã·ã§ãã«ãªè±èªãæšæºã§ãããããã¥ã¡ã³ããã»ãã¥ãªãã£ã¢ããã€ã¶ãªãæã çŸå°ã®èšèªã§æžãããŠããããšãããã翻蚳ãå°éçãªçè§£ãå¿ èŠã«ãªãå ŽåããããŸãã
- ã€ã³ã¿ãŒãããæ¥ç¶æ§ã®ã°ãã€ãïŒ ã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãä¿¡é Œæ§ã®äœãå°åã®ããŒã ã¯ã倧ããªäŸåé¢ä¿ããªãŒãæŽæ°ããããã»ãã¥ãªãã£ããããååŸãããããéã«èª²é¡ã«çŽé¢ããå¯èœæ§ããããŸãã
- çµæžçèŠå ïŒ ã»ãã¥ãªãã£ããŒã«ã®ã³ã¹ããä¿®æ£ã«å¿ èŠãªæéã¯ãéçºéäžåœã®çµç¹ã«ãšã£ãŠéèŠãªèŠå ãšãªãããšããããŸããç¡æã®ãªãŒãã³ãœãŒã¹ããŒã«ãåªå ããèªååã«çŠç¹ãåœãŠãããšãéèŠã§ãã
ã»ãã¥ãªãã£æåã®æ§ç¯
æçµçã«ã广çãªããã±ãŒãžè匱æ§ç®¡çã¯ããŒã«ã ãã®åé¡ã§ã¯ãããŸãããããã¯éçºããŒã å ã«ã»ãã¥ãªãã£ã®æåãè²ãããšã§ããããã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- ãã¬ãŒãã³ã°ãšæèåäžïŒ äžè¬çãªè匱æ§ãå®å šãªã³ãŒãã£ã³ã°æ £è¡ãäŸåé¢ä¿ç®¡çã®éèŠæ§ã«ã€ããŠéçºè ã宿çã«æè²ããŸãã
- æç¢ºãªããªã·ãŒãšæé ïŒ ããã±ãŒãžã®éžæãæŽæ°ãç£æ»ã«é¢ããæç¢ºãªã¬ã€ãã©ã€ã³ã確ç«ããŸãã
- 責任ã®å ±æïŒ ã»ãã¥ãªãã£ã¯ãå°éã®ã»ãã¥ãªãã£ããŒã ã ãã®é åã§ã¯ãªããå šå¡ã®å ±åäœæ¥ã§ããã¹ãã§ãã
- ç¶ç¶çãªæ¹åïŒ æ°ããè åšãããŒã«ãåŠãã æèšã«åºã¥ããŠãè匱æ§ç®¡çæŠç¥ã宿çã«èŠçŽããé©å¿ãããŸãã
äŸïŒ äžççãªæè¡ã«ã³ãã¡ã¬ã³ã¹ã§ã¯ãJavaScriptã®ã»ãã¥ãªãã£ã«é¢ããã¯ãŒã¯ã·ã§ãããéå¬ãããäŸåé¢ä¿ç®¡çã®éèŠæ§ã匷調ãããè匱æ§ã¹ãã£ã³ããŒã«ã®å®è·µçãªãã¬ãŒãã³ã°ãæäŸããããããããŸããããã®åãçµã¿ã¯ãå°ççãªå Žæãéçšäž»ã®èŠæš¡ã«é¢ããããäžçäžã®éçºè ã®ã»ãã¥ãªãã£äœå¶ãåäžãããããšãç®æããŠããŸãã
JavaScriptããã±ãŒãžã»ãã¥ãªãã£ã®æªæ¥
JavaScriptãšã³ã·ã¹ãã ã¯åžžã«é²åããŠããããããä¿è·ããæ¹æ³ãåæ§ã§ããç§ãã¡ã¯æ¬¡ã®ãããªããšãäºæž¬ã§ããŸãïŒ
- èªååã®å¢å ïŒ èåŒ±æ§æ€åºãšèªåä¿®æ£ã®ããã®ãããæŽç·ŽãããAIé§ååããŒã«ã
- æšæºåïŒ ç°ãªãããã±ãŒãžãããŒãžã£ãŒãããŒã«éã§ã»ãã¥ãªãã£æ £è¡ãšå ±åãæšæºåããåãçµã¿ã
- WebAssembly (Wasm)ïŒ WebAssemblyãæ®åããã«ã€ããŠããã®ã¯ãã¹èšèªã©ã³ã¿ã€ã ã®ããã®æ°ããã»ãã¥ãªãã£èæ ®äºé ãšç®¡çæŠç¥ãç»å Žããã§ãããã
- ãŒããã©ã¹ãã¢ãŒããã¯ãã£ïŒ ãœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ã«ãŒããã©ã¹ãã®ååãé©çšãããã¹ãŠã®äŸåé¢ä¿ãšæ¥ç¶ãæ€èšŒããŸãã
JavaScriptãã¬ãŒã ã¯ãŒã¯ãšã³ã·ã¹ãã ãä¿è·ããæ ã¯ç¶ããŠããŸããããã±ãŒãžè匱æ§ç®¡çã«å¯ŸããŠãããã¢ã¯ãã£ãã§ãèŠæãæ ãããã°ããŒãã«ãªèŠç¹ãæã€ã¢ãããŒããæ¡çšããããšã§ãéçºè ãšçµç¹ã¯äžçäžã®ãŠãŒã¶ãŒã®ããã«ããå埩åããããä¿¡é Œæ§ãé«ããå®å šãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããšãã§ããŸãã
ã°ããŒãã«éçºããŒã ã®ããã®å®è·µçãªæŽå¯
ã°ããŒãã«ããŒã ã§å ç¢ãªããã±ãŒãžè匱æ§ç®¡çãå®è£ ããããã«ïŒ
- å¯èœãªéããã¹ãŠãèªååããïŒ CI/CDãã€ãã©ã€ã³ã掻çšããŠã¹ãã£ã³ãèªååããŸãã
- ã»ãã¥ãªãã£ããªã·ãŒãäžå åããïŒ ãã¹ãŠã®ãããžã§ã¯ããšããŒã ã§äžè²«ããã»ãã¥ãªãã£æ £è¡ã確ä¿ããŸãã
- éçºè æè²ã«æè³ããïŒ ããŒã ã«ã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹ãšæ°ããªè åšã«ã€ããŠå®æçã«ãã¬ãŒãã³ã°ããŸãã
- ããŒã«ãè³¢ãéžã¶ïŒ æ¢åã®ã¯ãŒã¯ãããŒãšããŸãçµ±åããå æ¬çãªã«ãã¬ããžãæäŸããããŒã«ãéžæããŸãã
- äŸåé¢ä¿ã宿çã«ã¬ãã¥ãŒããïŒ äŸåé¢ä¿ããã§ãã¯ããã«æŸçœ®ããªãã§ãã ããããããžã§ã¯ãã®äŸåé¢ä¿ã宿çã«ç£æ»ããŸãã
- æ å ±ãåžžã«åŸãïŒ ã»ãã¥ãªãã£ã¢ããã€ã¶ãªã賌èªããä¿¡é Œã§ããã»ãã¥ãªãã£ç ç©¶è ãçµç¹ããã©ããŒããŸãã
- ãªãŒãã³ãªã³ãã¥ãã±ãŒã·ã§ã³ãä¿é²ããïŒ ããŒã ã¡ã³ããŒãå ±åŸ©ãæããããšãªããæœåšçãªã»ãã¥ãªãã£äžã®æžå¿µãå ±åãããã奚å±ããŸãã
JavaScriptãã¬ãŒã ã¯ãŒã¯ãšã³ã·ã¹ãã ã®çžäºæ¥ç¶ãããæ§è³ªã¯ãçµ¶å€§ãªæ©äŒãšé倧ãªè²¬ä»»ã®äž¡æ¹ãæç€ºããŸããããã±ãŒãžè匱æ§ç®¡çãåªå ããããšã§ãç§ãã¡ã¯éåçã«ãã©ãã«ããŠããã¹ãŠã®äººã®ããã«ããå®å šã§ä¿¡é Œã§ããããžã¿ã«ã®æªæ¥ã«è²¢ç®ããããšãã§ããŸãã